/**
 * 
 */
package br.com.devschool.entity;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import br.com.devschool.util.BaseEntity;

/**
 * @author ATILLA
 *
 */

@Entity
@Table
public class Certificado extends BaseEntity implements Serializable {

	private static final long serialVersionUID = -1823953469209028826L;

	private String 				codigo;
	private Date 				dataCadastro;
	private Integer 			frequencia;
	private Integer 			aproveitamento;
	private byte[] 				arquivo;
	private Matricula 			matricula;
	private Turma				turma;
	
	public Certificado(Integer id, String codigo, Date dataCadastro,
			Integer frequencia, Integer aproveitamento, byte[] arquivo,
			Matricula matricula, Turma turma) {
		super(id);
		this.codigo 			= codigo;
		this.dataCadastro 		= dataCadastro;
		this.frequencia 		= frequencia;
		this.aproveitamento 	= aproveitamento;
		this.arquivo 			= arquivo;
		this.matricula			= matricula;
		this.turma 				= turma;
	} 
	
	public Certificado() { }

	public String getCodigo() {
		return codigo;
	}

	public void setCodigo(String codigo) {
		this.codigo = codigo;
	}

	@Column(name="data_cadastro")
	@Temporal(TemporalType.DATE)
	public Date getDataCadastro() {
		return dataCadastro;
	}

	public void setDataCadastro(Date dataCadastro) {
		this.dataCadastro = dataCadastro;
	}

	public Integer getFrequencia() {
		return frequencia;
	}

	public void setFrequencia(Integer frequencia) {
		this.frequencia = frequencia;
	}

	public Integer getAproveitamento() {
		return aproveitamento;
	}

	public void setAproveitamento(Integer aproveitamento) {
		this.aproveitamento = aproveitamento;
	}

	@Lob
	public byte[] getArquivo() {
		return arquivo;
	}

	public void setArquivo(byte[] arquivo) {
		this.arquivo = arquivo;
	}

	@ManyToOne
	@JoinColumn(name="id_matricula")
	public Matricula getMatricula() {
		return matricula;
	}

	public void setMatricula(Matricula matricula) {
		this.matricula = matricula;
	}

	@ManyToOne
	@JoinColumn(name="id_turma")
	public Turma getTurma() {
		return turma;
	}

	public void setTurma(Turma turma) {
		this.turma = turma;
	}
	
}
